GuardDutyのEC2 Malware Protectionでは、管理アカウントのスナップショット保持設定が全メンバーアカウントに適用されます
困ったこと
マルチアカウント環境で Malware Protection for EC2 in Amazon GuardDuty を全アカウントで有効化した後[1]、GuardDuty 委任管理者アカウントで「マルウェアが検出された場合、スキャンされたスナップショットを保持します」オプションを有効化しました。
全アカウントでスナップショットの保持設定が有効化されると予想していましたが、メンバーアカウントのAWSマネジメントコンソールでは、この設定が無効と表示されていました。
AWSのドキュメントにはこの動作について記載がありません。メンバーアカウントごとに個別に有効化する必要があるのでしょうか?
結論
マルチアカウント環境における Amazon GuardDuty の EC2 Malware Protectionでは、管理アカウントのスナップショット保持設定が全メンバーアカウントに適用されます。
AWS のドキュメントには明記されていませんが、私の環境では、以下の条件でメンバーアカウントの EC2 インスタンスのスナップショットが保持されました。
- GuardDuty 委任管理者アカウントの AWS マネジメントコンソールで「スナップショットの保持」が有効になっている
- メンバーアカウントの AWS マネジメントコンソールでは「スナップショットの保持」が無効と表示されている
- メンバーアカウントで、EC2を作成してマルウェアを検知させる(手順)
スナップショットは、プライベートスナップショットから確認できます。
ただし、メンバーアカウントの AWS マネジメントコンソールでは、設定が無効と表示されたままとなりました。
さらに、AWS CLI を使用して確認したところ、GuardDuty 委任管理者アカウントでは設定が有効化されている一方、メンバーアカウントでは無効化と返ってきます。
[cloudshell-user@ip-xx ~]$ aws guardduty get-malware-scan-settings --detector-id <value>
{
"ScanResourceCriteria": {
"Include": {},
"Exclude": {}
},
"EbsSnapshotPreservation": "RETENTION_WITH_FINDING"
}
[cloudshell-user@ip-xx ~]$ aws guardduty get-malware-scan-settings --detector-id <value>
{
"ScanResourceCriteria": {
"Include": {},
"Exclude": {}
},
"EbsSnapshotPreservation": "NO_RETENTION"
}
EbsSnapshotPreservation
の値
- スナップショット保持設定の有効:RETENTION_WITH_FINDING
- スナップショット保持設定の無効:NO_RETENTION
detector ID は、GuardDuty 委任管理者アカウントの「設定」タブから確認できます。
参考